package com.zx.dao;

import com.zx.bean.Express;
import com.zx.exception.DuplicateCodeException;


import java.util.List;
import java.util.Map;


public interface ExpressDao {
    /**
     * 用于查询数据库中的全部快递 (总数 | 新增)
     * @return [ {size:    , day: } {size:   ,day :  }]
     *
     */

    List<Map<String,Integer>>  console();

    /**
     * 用于查询混所有快递
     * @param limit  是否分页   部分也表示查询所有
     * @param offset  SQL语句起始索引
     * @param pageNumber  每一页数量
     * @return
     */
    List<Express> findAll(boolean limit ,int offset,int pageNumber);

    /**
     * 根据快递单号,查询快递信息
     * @param number
     * @return  不存在null返回
     */
    Express findByNumber(String  number );

    /**
     * 根据取件码,查询快递信息
     * @param code
     * @return  不存在null返回
     */
    Express findByCode(String  code );

    /**
     * 根据手机号,查询所有快递
     * @param userPhone
     * @return
     */
    List<Express> findByUserPhone(String userPhone);

    /**
     * 根据录入人手机号,查询录入记录
     * @param sysPhone
     * @return
     */
    List<Express> findBySysPhone(String sysPhone);

    /**
     * 快递的录入e,
     * @return   返回结果是否录入成功
     */
   boolean insert(Express e) throws DuplicateCodeException;

    /**
     * 要修改的id  更改为newExpress
     * @param id
     * @param newExpress
     * @return
     */
   boolean update(int id,Express newExpress);

    /**
     * 根据id删除单个快递信息
     * @param id
     * @return
     */
   boolean delete(int id);

    /**
     * 确认取件后 ,要修改快递的状态码
     * @param code
     * @return
     */
   boolean updateStatus(String code);












}
